package br.com.esrestaurante.dao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

import br.com.esrestaurante.entidades.Conta;
import br.com.esrestaurante.entidades.Pedido;
import br.com.esrestaurante.util.HibernateUtil;

public class PedidoDAO {

	Session session;

	public PedidoDAO() {
		this.session = HibernateUtil.getInstance().getSessionFactory()
				.getCurrentSession();
	}
	
	public void salvar(Pedido pedido) {
		session.save(pedido);
	}
	
	public void merge(Pedido pedido) {
		session.merge(pedido);
	}
	
	public void delete(Pedido pedido) {
		session.delete(pedido);
	}
	
	public Pedido getPedido(Integer idPedido) {
		return (Pedido) session.load(Pedido.class, idPedido);
	}
	
	@SuppressWarnings("unchecked")
	public List<Pedido> listarPedidos() {
		return session.createCriteria(Pedido.class).list();
	}
	

	@SuppressWarnings("unchecked")
	public List<Pedido> recuperarPedidosPorConta(Conta conta) {
		Criteria criteria = session.createCriteria( Pedido.class ); 
		criteria.add(Restrictions.eq("conta", conta));

	     
	    return ( List<Pedido> ) criteria.list();  
	}
	
}
